Machine learning (ML) is utilized in a variety of data analysis tasks such as classification, regression analysis, clustering, and so forth. ML algorithms are trained by processing example training data to identify a set of parameters required to learn a particular function.
Data classification is typically a supervised learning process. Supervised learning algorithms are trained by signaling the correct output for each observation in a set of training data. In other words, the training data is labeled. The labeled training data enables a supervised learning algorithm to adjust its internal parameters to reduce training error. After the training error has been reduced below a predetermined threshold, the supervised training algorithm can be tested by processing observations from a set of test data that the algorithm has not yet seen during training. The algorithm predicts a classification value on each observation in the test set. The predicted classification value is then compared to an actual correct value. If the deviation between the predicted classification value and the actual correct value (the test error) is within acceptable bounds, the algorithm can be used as a predictor of production data and can be, for example, embedded in a user application. A variety of types of ML classification algorithms are known. Applicability of a specific classification algorithm to a dataset may depend on the content of the dataset. Generally, no single classification algorithm will yield the best performance in all situations against all datasets.
A support vector machine (SVM) is a supervised learning model and associated algorithm that typically performs well for a variety of types of classification tasks. More specifically, an SVM is a supervised learning model that executes an associated learning algorithm on training input data to generate outputs that can then be used to classify new input data. In particular, given a set of training examples, each labeled as belonging to one of two or more categories, an SVM training algorithm constructs a model that assigns new examples into one category or the other. More formally, an SVM is a discriminative classifier defined by a separating hyperplane. The model constructed by the SVM training algorithm is an optimal hyperplane capable of categorizing new examples.
While an SVM is a robust classification algorithm, it can suffer from performance degradation in the form of increased computation time, for example, as the size of an input dataset increases. Large problems can demand computational resources that exceed a single processor's ability to provide a sufficient amount of memory and processing capacity. Even with a sufficiently sized computing platform, the elapsed wall clock time can be quite large. In such situations, use of a SVM can be prohibitive. Discussed herein are technical solutions that address at least of the aforementioned drawbacks associated with conventional SVMs as well as other drawbacks.